'use strict';

/** @type {import('sequelize-cli').Migration} */
module.exports = {
  async up(queryInterface, Sequelize) {
    const articles = [
      {
        title: "Python在数据科学中的应用",
        content: "Python已成为数据科学领域的主流编程语言，其简洁的语法和强大的库支持使其成为数据分析和机器学习的首选工具。Python的Pandas库提供了高效的数据操作功能，而NumPy则支持复杂的数学运算。此外，Scikit-learn库为机器学习提供了丰富的算法实现。通过这些工具，数据科学家可以快速进行数据清洗、分析和模型构建。Python的广泛应用不仅限于数据科学，它还支持Web开发、自动化脚本等多种应用场景，展现了其作为一门多用途编程语言的强大能力。",
        createdAt: new Date(),
        updatedAt: new Date(),
        userId: 2
      },
      {
        title: "JavaScript框架比较：React vs Angular vs Vue",
        content: "在现代Web开发中，选择合适的JavaScript框架是一个关键决策。React、Angular和Vue是目前最流行的三个前端框架，每个框架都有其独特的特点和优势。React以其组件化和虚拟DOM著称，提供了高效的UI更新机制。Angular是一个全功能框架，提供了从数据绑定到依赖注入的一站式解决方案。Vue则以其轻量级和易用性受到开发者的喜爱。本文将对这三个框架进行详细比较，帮助开发者根据项目需求做出合适的选择。",
        createdAt: new Date(),
        updatedAt: new Date(),
        userId: 3
      },
      {
        title: "Java在企业级应用中的角色",
        content: "Java长期以来一直是企业级应用开发的首选语言。其稳定性、跨平台能力和强大的社区支持使其在企业环境中占据重要地位。Java的Spring框架提供了全面的编程和配置模型，支持现代Java-based企业应用的快速开发。此外，Java的强类型系统和丰富的API库使得开发复杂系统变得更加可靠和高效。随着微服务架构的流行，Java也通过Spring Boot等框架适应了这一趋势，继续在企业级开发中发挥关键作用。",
        createdAt: new Date(),
        updatedAt: new Date(),
        userId: 4
      },
      {
        title: "C++在系统编程中的应用",
        content: "C++因其高性能和底层硬件访问能力，在系统编程领域占据重要位置。从操作系统到游戏引擎，C++的应用广泛而深入。其面向对象的特性使得代码更易于管理和扩展，而模板和STL（标准模板库）则提供了强大的泛型编程能力。C++的内存管理虽然复杂，但也给予了开发者对程序性能的精细控制。随着C++20的发布，现代C++引入了更多新特性，如概念、协程等，进一步增强了其在系统编程中的竞争力。",
        createdAt: new Date(),
        updatedAt: new Date(),
        userId: 4
      },
      {
        title: "SQL数据库性能优化策略",
        content: "数据库性能优化是确保应用高效运行的关键。SQL数据库优化涉及多个方面，包括查询优化、索引策略、数据库架构设计等。合理的索引设计可以显著提高查询速度，而避免复杂的子查询和连接操作可以减少数据库的负担。此外，理解数据库的执行计划对于识别性能瓶颈至关重要。通过定期维护和监控数据库性能，可以及时发现并解决潜在问题，确保数据库系统的稳定和高效运行。",
        createdAt: new Date(),
        updatedAt: new Date(),
        userId: 2
      },
      {
        title: "React组件设计最佳实践",
        content: "React的组件化设计是其核心优势之一。有效的组件设计不仅可以提高代码的复用性，还能增强应用的可维护性。在设计React组件时，应遵循单一职责原则，确保每个组件只负责一个功能。使用高阶组件和Hooks可以进一步增强组件的功能和灵活性。此外，合理的状态管理和属性传递策略也是设计高效React应用的关键。通过遵循这些最佳实践，开发者可以构建出结构清晰、性能优越的React应用。",
        createdAt: new Date(),
        updatedAt: new Date(),
        userId: 4
      },
      {
        title: "Docker在微服务架构中的应用",
        content: "Docker容器技术为微服务架构的实施提供了理想的解决方案。通过将每个服务打包到一个独立的容器中，Docker确保了服务之间的隔离性和环境的一致性。这不仅简化了部署流程，还提高了系统的可扩展性和可靠性。Docker的轻量级特性使得在资源有限的环境中运行多个服务成为可能。此外，Docker Compose和Kubernetes等工具进一步简化了容器化应用的管理和编排，使得微服务架构的实施更加高效和便捷。",
        createdAt: new Date(),
        updatedAt: new Date(),
        userId: 3
      },
      {
        title: "Git高级使用技巧",
        content: "Git作为最流行的版本控制系统，其强大的功能支持复杂的开发流程。掌握Git的高级使用技巧，如分支策略、合并冲突解决、rebase操作等，可以极大提高开发效率和代码质量。理解Git的内部工作原理，如对象模型和引用机制，有助于更好地利用Git进行版本控制。此外，通过定制Git钩子和使用Git Flow等流程，可以进一步规范团队的开发流程，确保项目的顺利进行。",
        createdAt: new Date(),
        updatedAt: new Date(),
        userId: 2
      },
      {
        title: "RESTful API设计原则",
        content: "设计良好的RESTful API是构建现代Web服务的基础。遵循REST原则，如无状态、统一的接口和资源导向，可以确保API的简洁性和易用性。合理的资源命名和HTTP方法的使用是设计高效API的关键。此外，版本控制、错误处理和安全性也是API设计中不可忽视的方面。通过遵循这些设计原则，开发者可以构建出既灵活又可靠的Web服务，满足不同客户端的需求。",
        createdAt: new Date(),
        updatedAt: new Date(),
        userId: 4
      },
      {
        title: "机器学习算法概述",
        content: "机器学习算法是实现智能应用的核心。从简单的线性回归到复杂的深度学习网络，每种算法都有其适用的场景和特点。监督学习算法，如决策树和支持向量机，适用于有标签数据的预测任务。无监督学习算法，如聚类和主成分分析，适用于探索数据结构和模式。强化学习则通过试错来优化决策过程。理解这些算法的原理和应用场景，是进行有效机器学习实践的基础。",
        createdAt: new Date(),
        updatedAt: new Date(),
        userId: 3
      },
      {
        title: "网络安全防护策略",
        content: "随着网络攻击的日益增多，实施有效的网络安全防护策略变得尤为重要。从基本的防火墙配置到复杂的入侵检测系统，多层防御策略可以显著提高网络的安全性。加密技术，如SSL/TLS，确保了数据在传输过程中的安全。此外，定期进行安全审计和漏洞扫描，可以及时发现并修复安全漏洞。通过综合运用这些防护策略，可以构建一个更加安全的网络环境，保护敏感数据和系统资源。",
        createdAt: new Date(),
        updatedAt: new Date(),
        userId: 4
      },
      {
        title: "云计算服务模型比较",
        content: "云计算提供了多种服务模型，包括IaaS、PaaS和SaaS，每种模型都有其特定的应用场景和优势。IaaS提供了最基础的计算资源，适合需要高度控制环境的用户。PaaS提供了开发和部署应用的平台，简化了开发流程。SaaS则提供了直接可用的软件应用，适合需要快速部署和使用的场景。理解这些服务模型的特点，可以帮助企业和开发者根据需求选择合适的云服务，优化资源利用和成本效益。",
        createdAt: new Date(),
        updatedAt: new Date(),
        userId: 3
      },
      {
        title: "数据结构与算法的重要性",
        content: "数据结构与算法是计算机科学的基石，对于解决复杂的计算问题至关重要。高效的数据结构，如哈希表和平衡树，可以显著提高数据存取和处理的效率。算法，如排序和搜索算法，是处理和分析数据的基础。掌握这些基本的数据结构和算法，不仅可以帮助开发者解决实际问题，还可以提高程序的性能和用户体验。在技术面试中，数据结构与算法也是评估开发者能力的重要标准。",
        createdAt: new Date(),
        updatedAt: new Date(),
        userId: 2
      },
      {
        title: "前端开发趋势",
        content: "前端开发领域正在快速发展，新的技术和框架层出不穷。响应式设计、渐进式Web应用（PWA）和单页应用（SPA）是当前前端开发的主要趋势。这些技术不仅提高了Web应用的用户体验，还增强了应用的性能和可访问性。此外，前端开发工具，如Webpack和Babel，也在不断进化，支持更高效的开发流程。了解这些趋势和工具，可以帮助前端开发者保持竞争力，构建更现代、更高效的Web应用。",
        createdAt: new Date(),
        updatedAt: new Date(),
        userId: 3
      },
      {
        title: "后端开发技术栈选择",
        content: "选择合适的后端技术栈是构建高效Web应用的关键。从编程语言到框架，每个选择都会影响应用的性能、可维护性和扩展性。Node.js以其非阻塞I/O和事件驱动特性，适合处理大量并发请求。Django和Ruby on Rails则以其快速开发能力受到欢迎。理解不同技术栈的特点和适用场景，可以帮助开发者根据项目需求做出合适的选择，确保应用的成功。",
        createdAt: new Date(),
        updatedAt: new Date(),
        userId: 4
      },
      {
        title: "移动应用开发平台比较",
        content: "移动应用开发涉及多个平台，包括iOS和Android。每个平台都有其特定的开发语言和工具，如Swift和Xcode用于iOS开发，Java/Kotlin和Android Studio用于Android开发。跨平台开发框架，如React Native和Flutter，提供了一种同时开发多个平台应用的解决方案。理解这些平台和框架的特点，可以帮助开发者选择合适的技术路径，高效地开发移动应用。",
        createdAt: new Date(),
        updatedAt: new Date(),
        userId: 3
      },
      {
        title: "区块链技术应用案例",
        content: "区块链技术以其去中心化和不可篡改的特性，正在多个领域找到应用。从加密货币到供应链管理，区块链提供了一种安全、透明的数据记录方式。智能合约是区块链的另一重要应用，它允许在没有中介的情况下执行合同条款。理解这些应用案例，可以帮助开发者和企业探索区块链技术的潜力，开发创新的解决方案。",
        createdAt: new Date(),
        updatedAt: new Date(),
        userId: 3
      },
      {
        title: "DevOps文化与实践",
        content: "DevOps是一种旨在缩短系统开发生命周期、提高部署频率和更可靠的发布的文化和实践。通过自动化工具和流程，DevOps促进了开发与运维团队之间的协作。持续集成和持续部署（CI/CD）是DevOps实践的核心，它们确保了代码的快速迭代和高质量。理解DevOps的原则和实践，可以帮助团队提高效率，更快地响应市场变化。",
        createdAt: new Date(),
        updatedAt: new Date(),
        userId: 2
      },
      {
        title: "人工智能伦理问题探讨",
        content: "随着人工智能技术的快速发展，其伦理问题也日益受到关注。从隐私保护到算法偏见，AI的应用引发了一系列社会和道德问题。确保AI系统的透明性和可解释性是解决这些问题的关键。此外，制定合理的政策和规范，也是引导AI健康发展的重要措施。探讨这些伦理问题，不仅有助于技术的负责任使用，还能促进社会的公正和包容。",
        createdAt: new Date(),
        updatedAt: new Date(),
        userId: 4
      },
      {
        title: "物联网安全挑战",
        content: "物联网（IoT）设备的普及带来了新的安全挑战。由于设备数量庞大且多样化，传统的安全措施往往难以应对。确保设备的安全配置、定期更新固件和使用强加密是保护IoT系统的基本措施。此外，建立全面的安全监控和响应机制，也是应对潜在威胁的关键。理解这些安全挑战，可以帮助开发者和企业构建更安全的IoT解决方案。",
        createdAt: new Date(),
        updatedAt: new Date(),
        userId: 2
      }
    ];

    await queryInterface.bulkInsert('Articles', articles, {});
  },

  async down(queryInterface, Sequelize) {
    /**
     * Add commands to revert seed here.
     *
     * Example:
     * await queryInterface.bulkDelete('People', null, {});
     */
    await queryInterface.bulkDelete('Articles', null, {});
  }
};
